VADS

Proven Ada Compilation Systems


Rational's VADS (R) product line is an extensive family of mature, production-quality, optimizing Ada compilers, cross-compilers, and related tools to help you debug, understand, tune, and deliver your code. VADS is available for most popular host platforms and embedded-system targets. All VADS compilers are built from a common code base, so they offer a common user interface and common functionality. VADS is a fundamental component of Rational's modern, Ada-based, software-engineering solution, which comprises a set of software processes, products, and services that give you control of your software-development efforts and sharpen your competitive edge.

Provides a solution for every Ada application

There is an easy-to-use VADS solution--VADSself (TM), VADScross (TM), or VADSworks (TM)--for every Ada project. VADSself provides a complete toolset for self-targeted (native) applications. VADScross provides support for host-to-target development of real-time embedded systems. VADScross includes every tool provided in VADSself, plus additional tools that extend VADS to provide a fast, efficient cross-development system. VADSworks is a version of VADScross that supports the VxWorks runtime executive from Wind River Systems; VADSworks is ideal for applications on off-the-shelf VME hardware.

Brings you higher development productivity

Each VADSself, VADScross, or VADSworks product includes--in addition to the compiler or cross-compiler--a code optimizer, a symbolic debugger, a disassembler, a cross-reference generator, a source-code formatter (pretty-printer), an Ada preprocessor, a library manager, a compilation manager, a rich set of standard libraries including math packages, and extensive online help and hard-copy documentation.

The Ada preprocessor allows conditional compilation and inclusion of Ada source code to broaden your configuration-management options. The library manager helps you organize the components of a large program by establishing multiple libraries based on your specific project needs. The a.make compilation manager recompiles out-of-date units based on dependency information generated by the compiler, freeing you from the error-prone task of managing source-file dependencies.




No matter what platform you use, the power of VADS
helps you complete your application sooner.


Optimizes your code for high performance

VADS offers dozens of user-controllable code optimizations. These include: VADS code generators for RISC architectures perform instruction scheduling and generate hardware floating-point instructions when appropriate. VADS produces code that is fast, compact, and efficient.

Minimizes the size of your application

VADS supports shared-code generics, in which multiple instantiations of a generic template are implemented using a single, shared segment of object code, reducing the size of your application. You also have the option of fully replicated generics, giving you control over the space/time trade-off. VADScross features selective linking, which creates the smallest possible executable by including only the subprograms and data your application requires. VADSself features selective linking where it is supported by the standard system linker provided by the platform vendor.

Reduces turnaround time dramatically

Even though the VADS compilers are very fast, linking large programs can be a bottleneck in edit-compile-debug turnaround time. To solve this problem, we designed the VADS linker to be extremely fast, so you can quickly edit, compile, link, and then test your code. In addition, VADS minimizes object file symbols to reduce the amount of work the linker must do. The VADS approach pays off. For example, on the P-3 Orion UPDATE IV project, the VADS linker calculates the elaboration order of more than 7,000 software units (over 1.5 million lines of code) in just minutes using minimal memory.

Controls machine-level details

VADS provides complete support for Chapter 13 of the Reference Manual for the Ada Programming Language, including bit-level representation clauses, length clauses, and address clauses. Because VADS provides machine-code insertions, you can use standard Ada mechanisms to encapsulate very low-level, machine-specific code and even make this code in-line. Our attention to the details of Chapter 13 increases the functionality of VADS so that you can avoid the work-arounds required by most other compilers. For example, it is easy to construct otherwise difficult low-level interfaces to code written in other languages. VADS gives you a level of control essential for programming both embedded systems and low-level host applications.

Provides high-performance runtime options

The VADS runtime system provides full Ada support for real-time applications and extended capabilities to give you more control over real-time performance. Mailboxes are supported, giving you an option for intertask communication other than the standard Ada rendezvous. Semaphores are supported. Passive task optimizations provide high-speed Ada tasking for time-critical applications; passive tasking can occur in as little as a few microseconds. You can control many other aspects of tasking, including time slicing, dynamic alteration of task priority, and preemption-control algorithms.

The VADS runtime system offers flexible memory management, including the ability to add custom memory-management routines. Support for interrupts is extensive, with standard Ada mechanisms for interrupt handling and very fast capabilities for interrupt service routines. VADS provides direct, sequential, text, and low-level I/O as well as a family of timers and clocks.

The small, fast, and efficient VADS runtime system can be easily configured and tailored to customized processors without requiring compiler revalidation. VADS gives you control where you need it. The VADS real-time options are available on VADSself, VADScross, and VADSworks, so you can test more of your code on the host before moving to your embedded target.




The compatibility of VADSself, VADScross, and VADSworks allows testing
on your host and full support for testing on the target.


Offers a powerful, nonintrusive debugger

VADS includes a Motif-based symbolic debugger. Because the VADS debugger gets its symbolic information from the Ada library instead of from your executables, there is never any need to recompile for debugging. Debugging information is always available without any cost at link time!

The VADS debugger fully supports Ada exceptions, tasking, generics, shared generics, representation clauses, and in-line code. You can:

The VADS debugger provides a Motif user interface that is user-configurable and user-extensible. This interface makes the VADS debugger the most powerful and useful debugger available today.

The VADS debugger allows interactive subprogram calls, so you can write and use sophisticated debugging instrumentation subprograms. It provides extensive command logging and scripting capabilities to automate your debugging activities and make them reproducible. You can invoke the editor from the debugger to make changes immediately to your source code. The debugger understands all of the VADS runtime options and gives you a single, consistent debugger model even if you use the additional real-time mechanisms provided by VADS.

Debugs optimized code

With VADS, you debug the fully optimized code that will run in your field application. You never need to recompile your code with optimizations turned off to use the debugger. The debugger also interfaces with the runtime system to provide you with details on the tasking state of your program. Using the VADS debugger, you can quickly understand the behavior of your program.

Debugs your embedded systems in real time

The VADS cross-compilers include the VADS debugger in cross-development mode, making it easy to test and debug embedded systems. You download and debug directly from the host, choosing the host-to-target communications link that best meets your project's needs: RS232 or Ethernet. Because the target debug monitor is a stand-alone, system-level debugging agent, you can debug at the lowest levels--including interrupt service routines or kernel configuration code. The VADS symbolic debugger can also serve as the interface for your in-circuit emulator. Trace buffers record signals from every buffer cycle out of the CPU, so that you can review the buffer and analyze the course of debugging.

Allows reuse of code in other languages

The self-hosted linker maintains the same object file format as the host, enabling interoperability between Ada, C, FORTRAN, assembly, and other languages on every platform we support. You can reuse existing code or software components in these other languages to save time and money. VADS and applications generated by VADS interface easily with other applications, such as databases, windowing systems, and program-management tools.

The VADS debugger provides source-level debugging for mixed-language programs consisting of Ada, C, and assembly.

Frees you from dependence on your current hardware

The entire VADS family is built from a single, shared base of source code. The "look and feel," compiler details (representation clauses, attributes, packages), debugger operations, interface to the runtime executive, and most other product features are identical across VADSself, VADScross, and VADSworks on all platforms.

The hardware independence of VADS enables you to work on the hardware of your choice, share software among dissimilar hardware systems, and develop software programs on multiple hosts. Source code is extremely portable from one member of the VADS family to another. You can change host or target hardware as your requirements change, without changing your application code or retraining your development team.

Brings you field-proven reliability

All VADS compilers are validated against ACVC 1.11, although validation is only a tiny part of the testing that all VADS compilers undergo. VADS has been proven on projects ranging from thousands to millions of lines of code. Our regression test suite includes millions of lines of customer code from some of the world's most demanding applications. Today, VADS is the world's "most experienced" Ada compiler system; it has processed more Ada code than any other system available.

From the shipment of the first VADS product over a decade ago, we have focused on maximizing customer productivity and providing the precision and robustness that Ada programmers expect from their tools. VADS reflects our experience in supporting some of the world's largest and most sophisticated Ada applications. We have designed, refined, and expanded VADS to implement features demanded by real-world programmers. VADS meets the most stringent program needs, because we have paid attention to the performance demands of our customers.

Works with other tools to provide a complete solution

The capabilities listed above are part of the basic VADSself, VADScross, or VADSworks products. The VADS family also includes optional extra tools to give you an even more complete Ada development solution.

VADSanalysis (TM) gives you nonintrusive coverage analysis, performance profiling, and program tracing and debugging at the level of task events to help you rapidly understand and tune your application's behavior. VADSfilesystem (TM) offers a highly reliable, fault-tolerant, portable file system for high-performance, real-time applications. VADSnet (TM) provides off-the-shelf, high-speed, reliable networking. Rational also offers an extensive selection of Ada source-code bindings to other tools, such as X and Motif, making it easy to produce Ada applications that use standard GUI mechanisms.

VADSmp (TM) offers shared-memory multiprocessor support in a special version of the VADS runtime executive, when the underlying operating system supports POSIX threads. DADS (TM), a distributed application development system, offers automatic distribution of Ada objects (tasks, subprograms, and data) in an Ada program across a homogeneous network. UNAS, Universal Network Architecture Services, supports the development of distributed, heterogeneous Ada applications.

VADS is also integrated with Rational Apex (TM), the industry's only interactive, team-oriented, software-engineering environment for Ada, and the Rational Apex family of add-on products: Rational Rose (R), Rational Rose (R)/Ada, TestMate (TM), SoDA (TM), Ada Analyzer, and AdaQuest.

From compilers and cross-compilers, to an integrated programming environment, to tools for analysis and design, automated testing, document generation, and software metrics, the Rational product line is the most extensive one available to help you cope with the problems of designing, building, and maintaining complex software systems in Ada.


D-107A; last updated 10/2/95